package com.zrrd.learn.chapter07;

import java.util.Random;

/**
 * 字符串练习题2
 *
 * @author asus
 * @version 1.0
 * @date 2023/7/19 10:13
 */
public class StringWork02 {

    public static String getStr(char[] chs) {
//        获取随机的字符串，要求如下：
//定义String getStr(char[] chs)静态方法，方法内要求：获取长度为5的随机字符串，字符串由随机的4个大写英文字母和1个0-9之间（包含0和9）的整数组成
//定义main方法，方法内完成：
//1.定义长度为26，元素值为26个大写英文字母的数组chs
//2.传递数组chs调用getStr(char[] chs)方法，获取返回值,并在控制台打印返回值
            Random random = new Random();
            String str = "";
            for (int i = 0; i < 5; i++) {
                //sum1 计数 计算 str字符串中有多少个大写字母
                int sum1 = 0;
                //sum2 计数 计算 str中有多少个数字
                int sum2 = 0;
                int a = random.nextInt(2);
                for (int j = 0; j < str.length(); j++) {

                    if(str.charAt(j)>='A'&&str.charAt(j)<='Z'){
                        sum1++;
                    }
                    if (str.charAt(j)>='0'&&str.charAt(j)<='9') {
                        sum2++;
                        break;
                    }

                }
                if (sum1 == 4) {
                    str += random.nextInt(10);
                    continue;
                }
                if (sum2 == 1) {
                    str += (char) ((random.nextInt(26) + 65));
                    continue;
                }
                if (a == 0) {
                    //生成大写字母
                    str += (char) ((random.nextInt(26) + 65));
                }
                if (a == 1) {
                    //生成数字
                    str += random.nextInt(10);
                }
            }
            System.out.println(str);

            return str;
        }


        public static void main (String[]args){
//        创建一个StringBuffer对象内容为“我就是学习”在其中插入数据使输出结果为“我就是努力学习”。

            StringBuilder a = new StringBuilder("我就是学习");
            String b = String.valueOf(a.insert(3, "努力"));
            System.out.println(b);

//        创建一个StringBuffer对象内容为“学习使我开心”替换其中的数据使输出结果为“游戏使我快乐”。
            StringBuffer a1 = new StringBuffer("学习使我开心");
            String b1 = String.valueOf(a1.replace(0, 2, "游戏"));
            String b2 = b1.replace("开心", "快乐");
            System.out.println(b2);

//        验证一个字符串是否为回文数
            int a2 = 121;
            //把a转化成字符串类型
            String str = a2 + "";
            StringBuilder b3 = new StringBuilder(str);
            System.out.println(b3.reverse().toString().equals(str) ? "是回文数" : "不是回文数");

//        创建一个StringBuffer对象然后实现反转输出 例子：123 输出321
            StringBuffer a3 = new StringBuffer("123");
            String b4 = String.valueOf(a3.reverse());
            System.out.println(b4);

//        创建一个StringBuffer对象实现和String对象互转
            StringBuilder stringBuilder = new StringBuilder("hello");
            stringBuilder.toString();//convert StringBuffer to String
            System.out.println(stringBuilder);

            char[] chs = new char[5];
            getStr(chs);

        }
    }
